﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CapaEntidades;
using CapaNegocio;
using System.Data;
namespace SisHotel.Intranet
{
    public partial class frmProcesoReserva : System.Web.UI.Page
    {
        string clFecEnt = "";
        string clFecSal = "";
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                CargarHabitaciones();
            }
        }

        #region Programacion Botones
        protected void btnBuscar_Click(object sender, EventArgs e)
        {

            clFecEnt = calFecEntrada.SelectedDate.Year.ToString() + "-" + calFecEntrada.SelectedDate.Month.ToString() + "-" + calFecEntrada.SelectedDate.Day.ToString();
            clFecSal = calFecSalida.SelectedDate.Year.ToString() + "-" + calFecSalida.SelectedDate.Month.ToString() + "-" + calFecSalida.SelectedDate.Day.ToString();

            dlHabitaciones.DataSource = negHabitacion.Instancia.BusquedaHabitacionXFechas(clFecEnt, clFecSal);
            dlHabitaciones.DataBind();
        }
        protected void btnBuscarCliente_Click(object sender, EventArgs e)
        {
            String nroDocumento = txtDNI.Text;
            if (txtDNI.Text == "")
            {
                txtDNI.Focus();
                return;
            }
            Session["infoCliente"] = negCliente.Instancia.BuscarXNroDocumento(nroDocumento);
        }
        #endregion

        #region Metodos
        private void CargarHabitaciones()
        {
            dlHabitaciones.DataSource = negHabitacion.Instancia.BusquedaHabitacionXFechas("", "");
            dlHabitaciones.DataBind();
        }
        #endregion

        #region Crear Cabecera Tabla
        private void CrearCabeceraRerserva()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("Nro", Type.GetType("System.Int32"));
            dt.Columns.Add("IdHabitacion", Type.GetType("System.Int32"));
            dt.Columns.Add("FechaIngreso", Type.GetType("System.String"));
            dt.Columns.Add("FechaSalida", Type.GetType("System.String"));
            dt.Columns.Add("NroHabitacion", Type.GetType("System.Int32"));
            dt.Columns.Add("NombreTipoHab", Type.GetType("System.String"));
            dt.Columns.Add("NroNoches", Type.GetType("System.Int32"));
            dt.Columns.Add("Precio", Type.GetType("System.Double"));
            dt.Columns.Add("Subtotal", Type.GetType("System.Double"));
            dt.Columns.Add("Total", Type.GetType("System.Double"));
            dt.Columns["Nro"].AutoIncrement = true;
            dt.Columns["Nro"].AutoIncrementSeed = 1;
            dt.Columns["Nro"].AutoIncrementStep = 1;

            Session["reserva"] = dt;
        }
        #endregion

        #region Evetos Grid
        protected void dlHabitaciones_ItemCommand(object source, DataListCommandEventArgs e)
        {
            if (e.CommandName == "Reservar")
            {
                  if (Session["reserva"] == null)
                  {
                      CrearCabeceraRerserva();
                  }
                  DataTable dt = (DataTable)Session["reserva"];
                  DataRow fila = dt.NewRow();
                  fila["IdHabitacion"] = ((Label)e.Item.FindControl("lblIdHabitacion")).Text;
                  fila["NroHabitacion"] = ((Label)e.Item.FindControl("lblNroHab")).Text;
                  fila["NombreTipoHab"] = ((Label)e.Item.FindControl("lblHabitacion")).Text;
                  fila["Precio"] = Convert.ToDouble(((Label)e.Item.FindControl("lblPrecio")).Text);
                  fila["FechaIngreso"] = calFecEntrada.SelectedDate.ToString("yyyy-MM-dd");
                  fila["FechaSalida"] = calFecSalida.SelectedDate.ToString("yyyy-MM-dd");
                  TimeSpan ts = calFecSalida.SelectedDate - calFecEntrada.SelectedDate;
                  int nroNoches = ts.Days;
                  fila["NroNoches"] = nroNoches;
                  dt.Rows.Add(fila);
                  Response.Redirect("frmDetalleReserva.aspx");
            }
        }
        #endregion


    }
}